    package com.zsn.ai.controller;

    import com.zsn.ai.repository.ChatHistoryRepository;
    import lombok.RequiredArgsConstructor;
    import org.springframework.ai.chat.client.ChatClient;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import reactor.core.publisher.Flux;
    import static org.springframework.ai.chat.memory.ChatMemory.CONVERSATION_ID;

    /**
     * @program: ai-demo
     * @ClassName CustomerServiceController
     * @description:
     * @author: zsn
     * @create: 2025-09-30 18:06
     * @Version 1.0
     **/
    @RequiredArgsConstructor
    @RestController
    @RequestMapping("/ai")
    public class CustomerServiceController {

        private final ChatClient serviceChatClient;

        private final ChatHistoryRepository chatHistoryRepository;

        @RequestMapping(value = "/service", produces = "text/html;charset=utf-8")
        public Flux<String> service(String prompt, String chatId) {
            // 1.保存会话id
            chatHistoryRepository.save("service", chatId);
            // 2.请求模型
            return serviceChatClient.prompt()
                    .user(prompt)
                    .advisors(a -> a.param(CONVERSATION_ID, chatId))
                    .stream()
                    .content();
        }
    }